// 导入axios模块，用于发送HTTP请求
import axios from 'axios'
// 导入qs模块，用于序列化POST类型的数据，使其适合发送到服务器
import qs from 'qs'
// 引入key值常量，用于聚合数据的API密钥
import juheKey from '@/configs/keys'

/**
 * 定义一个请求函数，用于发送POST请求
 * @param {Object} options - 包含请求URL和数据的对象
 * @param {string} options.url - 请求的URL
 * @param {Object} options.data - 请求的数据 payload
 */
const axiosPost = options => {
    // 发送POST请求，并将数据序列化后附加到请求体中
    axios.post(
        options.url,
        qs.stringify({
            key: juheKey,
            ...options.data
        })
    ).then(
         res => {
            // 请求成功，将响应数据发送到回调函数
            options.success(res.data)
        }
    ).catch(
         err => {
            // 请求失败，将错误信息发送到回调函数
            options.error(err)
        }
    )
}

/**
 * 定义一个请求函数，用于发送GET请求
 */
const axiosGet = options => {
    // 发送POST请求，并将数据序列化后附加到请求体中
    axios.get(
        options.url,
        {
            params: {
                key: juheKey,
                ...options.data
            }
        }
    ).then(
         res => {
            // 请求成功，将响应数据发送到回调函数
            options.success(res.data)
        }
    ).catch(
         err => {
            // 请求失败，将错误信息发送到回调函数
            options.error(err)
        }
    )
}

// 导出集成好的 请求函数
export {axiosPost,axiosGet}